package 中等.哈希表;

/**
 * 给你一个整数数组 hours，表示以 小时 为单位的时间，返回一个整数，表示
 * 满足 i < j 且 hours[i] + hours[j] 构成 整天 的下标对 i, j 的数目。
 * 整天 定义为时间持续时间是 24 小时的 整数倍 。
 * 例如，1 天是 24 小时，2 天是 48 小时，3 天是 72 小时，以此类推。
 *
 * @ https://leetcode.cn/problems/count-pairs-that-form-a-complete-day-ii/description/?envType=daily-question&envId=2024-10-23
 * @date 2024/10/23
 */
public class 构成整天的下标对数目II_3185 {

    public static void main(String[] args) {

    }

    /**
     * 哈希表
     */
    public long countCompleteDayPairs(int[] hours) {

        long ans = 0;
        int[] cnt = new int[24];

        for (int hour : hours) {

            ans += cnt[(24 - (hour % 24)) % 24];
            cnt[hour % 24]++;

        }
        return ans;
    }

}
